Due to the proliferation of wireless networks, there are a continually increasing number of wireless devices in use today. These devices include mobile telephones, personal digital assistants (PDAs) with wireless communication capabilities, two-way pagers and the like. Concurrently with the increase of available wireless devices, software applications running on such devices have increased their utility. For example, the wireless device may include an application that retrieves a weather report for a list of desired cities or an application that allows a user to shop for groceries. These software applications take advantage of the ability to transmit data of the wireless network in order to provide timely and useful services to users, often in addition to voice communication. However, due to a plethora of different types of devices, restricted resources of some devices, and complexity of delivering large amounts of data to the devices, developing software applications remains a difficult and time-consuming task.
A wireless handheld device has limited battery power, memory and processing capacity. Since communication on a device is very expensive in terms of energy consumption, it is desirable to minimize resource use of the device as much as possible.
Devices from different manufacturers expose standard device application data entities (SDADEs) by providing their in-house application programming interfaces (APIs), which are usually not compliant to each other. Following the traditional way of developing a device application, a third party device application vendor tailors or re-develops applications on a per-device manner in order to use specific vendors' proprietary function calls to access SDADEs. Furthermore, for a specific device, the same piece of code has to be rewritten for each of its applications in order to access the device's SDADEs, which should be avoided by somehow sharing the code among these applications.